<?php
/**
 * 产品等级
 * @author shipanpan
 *
 */
class Application_Model_ProductGrade extends Model_Base {
	private $_allGrade = null;

	/**
	 * 根据等级id获取等级名称
	 * @param  [type] $gradeId 产品等级id，为null时，返回全部的等级名称数组
	 * @return array[gradeId=>gradeName,....]
	 */
	public function getName($gradeId = null) {
		if (is_null($this->_allGrade)) {
			$allGrade = $this->getAllGrade(['name', 'id']);
			$allGrade = array_column($allGrade, 'name', 'id');
			ksort($allGrade);
			$this->_allGrade = $allGrade;
		}

		if (is_null($gradeId)) {
			return $this->_allGrade;
		}
		return $this->_allGrade[$gradeId] ?? "";
	}

	/**
	 * 获取已有的全部产品等级信息
	 * @param  array $field 返回的字段
	 * @return [type]  键名为等级id，键值为等级详细信息的关联数组
	 */
	public function getAllGrade(array $field = ["*"]) {
		$db = $this->db();
		$select = $db->select();
		$select->from('p_product_grade', $field);
		$allGrade = $db->fetchAll($select);
		return array_column($allGrade, null, 'id');
	}
}